Method for the remote control programming of machine controllers and machine controller for carrying out said method

ABSTRACT

The invention relates to a method for remote-control programming and to a machine control system  2  for performing the method. To refine the method so as to simplify and shorten an execution operation of a control program source yet automatically avoid version conflicts between the control program source and the compilate in the machine control system, it is proposed that the program source  3   a  stored in memory in the machine control system be executed by means of a programming device  1 , and after the execution, the compilate of the executed program source is generated and stored in memory in the machine control system, where it is made available to a control module.

[0001] The invention relates to a method for remote-control programmingof machine control systems, and to a PC-based machine control system forperforming the method.

[0002] An automated production system usually has many machines, eachwith corresponding machine control systems in which a compiled controlprogram is stored in memory. Upon startup and when changes are made,such as in optimizing production sequences, searching for errors anderror correction, and so forth, individual control programs or all thecontrol programs, such as SPS control programs, must often be generatedor modified.

[0003] Although the capability of executing a control program source ispresent in each machine control system, the execution is usuallyperformed by a separate programming device provided specifically forthat purpose. It can for instance be a PC, and in particular a notebook.This has the advantage that the execution/setup of the control programsource can be done centrally on only a single programming device. Thiscan also be done at a completely different place from where theapplicable machine or machine control system is located. Anotheradvantage is that both operation of the machine via the operation andvisualization module of the machine control system and execution of thecontrol program—in particular, a status display of control signals indebugging the control program—can be done simultaneously with theprogramming device. To that end, it is known to establish a connectionbetween the programming device and the applicable machine controlsystem, via a serial direct interface between these devices. This isfollowed by an upload of the control program source from the machinecontrol system into the programming device. The execution is then donevia a programming module in the programming device. Next, theexecuted/set-up control program source is compiled, and the compilate isdownloaded into the machine control system. Next, the machine controlsystem is provided with the executed compilate, and the user candisconnect the programming device from the machine control system. Atthe same time, as a rule there is also a programming module in eachmachine control system, which always includes the applicable compiler.It is therefore possible to execute the control program, compile it, andload it into a control module of the machine control system directly atthe machine control system. Usually, this is the case if theadaptation/modification is relatively slight.

[0004] A download of both the control program source and the compilateinto the machine control system must always be done. If the download ofthe control program source into the machine control system is not done,the result is inconsistency of the compilate stored in memory there andthe control program source. If a (post-) execution takes place in the inthe machine control system, and the newly generated control programsource is compiled and downloaded into a control module of the machinecontrol system, then the previously executed compilate may be lost undersome circumstances. In the prior art, this is always possible. That is,it is quite possible that (for instance unintentionally), the downloadof the control program source into the machine control system fails totake place, resulting in the aforementioned inconsistency. In that case,the compilate is newer than the control program source.

[0005] It is the object of the present invention to simplify and shortenan execution operation of a control program source, yet automatically toavoid an unintended loss of the executed control program source, so thatthe current compilate is always available in the machine control system.

[0006] This object is attained by the characteristics of claim 1.

[0007] The invention offers the advantage that automatically and withoutfurther action, the consistency of data between the control program andthe compilate in the machine control system is always assured, and thatthe current version, namely the version executed with the programmingdevice, of the control program source is always present in the machinecontrol system. The invention furthermore offers substantialsimplification and shortening of the execution of a control programsource.

[0008] These advantages are attained because the program source storedin memory in the machine control system is executed directly in theprogramming device, and after the execution, the compilate of theexecuted control program source is generated and stored in memory in themachine control system, where it is made available to a control module.

[0009] The programming device can in particular be a commerciallyavailable PC, in particular a laptop, which is connected to the machinecontrol system for the sake of maintenance or startup. This will bediscussed in further detail hereinafter.

[0010] What is essential is that the execution of the control programsource takes place in the programming device, without having to bestored in memory there. Instead, for execution by means of theprogramming device, the control program or the control program sourcethat is stored in memory in the machine control system is used directly.As a result, the program source is executed practically directly at theplace where it is stored in memory and is compiled, and thus at theplace that is in fact definitive for the proper function and executionof the control program. Inconsistencies between the compilate and thecontrol program source in the machine control system are thusautomatically avoided. A critical factor is that the new control programsource, that is, the one executed within the context stated above, isalways present in the machine control system. Often, the control programsource is also modified (usually to a minor extent) in the context ofoperating the machine with the machine control system. In that case, itis compiled in the machine control system. As a result of the invention,at most the compilate is older than the control program source executedin the context of the invention. However, this inconsistency can alwaysbe overcome simply by providing that compilation of the control programsource stored in memory be done in the machine control system.

[0011] As a result, simple execution, namely execution to be done on aprogramming device configured specifically for it, is possible for thefirst time without the risk of data loss or of inconsistencies—as notedabove.

[0012] According to the invention, compiling the executed program sourcein the programming device is typically done with an ensuing download ofboth the program source and the compilate into the machine controlsystem. These are always assured to be in the “latest state”.

[0013] The invention offers automatic assurance, which is practicallyimpossible to overcome, of the aforementioned consistency in a verysimple way. By means of a programming device preconfigured according tothe invention and a correspondingly preconfigured machine controlsystem, the aforementioned method is performed quasi-automatically.Operation is practically unchanged externally compared to the prior art;that is, the user need not be aware that the control program source isexecuted directly in the machine control system.

[0014] With the invention, linking of the programming device (such as aPC) to a plurality of machine control systems can also be donesimultaneously. This kind of communication connection can for instancebe used to compare a plurality of program sources or execute or modifythem simultaneously. If a plurality of machine control systems thatbelong together or cooperate together in the basic machine combinationare present, then the execution of the associated program sources can beadapted to one another very simply, without having to connect theprogramming device sequentially to the various machine control systemsand disconnect it again from them.

[0015] On the other hand, several work steps can also be eliminated; forinstance, the control program source does not have to be downloaded intothe machine control system after execution. This is because the correctversion of the control program source has automatically been executedand stored in memory in the correct place.

[0016] Preferred features of the present invention are described in thedependent claims.

[0017] If the program source is to be used for a plurality of machinecontrol systems, or is to be executed, checked or sent onward at somesite other than the location of the machine control system, then it mustbe assured that the program source is additionally stored in memory inthe programming device, and that before and/or after the execution, acomparison for a match of the program sources in the machine controlsystem and in the programming device is done. This comparison can bedone manually, or automatically. As a result, errors in transmissionduring the communication are largely precluded. At least, it is alwaysassured that the user (customer service/serving, or the personperforming the startup) always has the same version in its programmingdevice that is also running in the machine control system. Then theuser—for instance in a central maintenance office or the like—can alwaysperform the work and take care of any problems that arise at theapplicable machine control system with a precise match with the controlprogram of the machine control system.

[0018] A simultaneous access in other ways during the execution of theprogram source—which after all is done directly in the machine controlsystem—is reliably prevented because during the communication and/or theexecution of the program source, access to the program source of themachine control system is prevented. For that purpose, a flag in themachine control system can be set, for instance, which deactivates thecapability of access to the program source of the machine controlsystem. This can be done by hand or automatically. In each case, theflag that has been set prevents simultaneous execution and henceimproper access.

[0019] The unity and consistency of execution are thus preserved. Thisis advantageous particularly in large factory buildings, where the userwith his programming device is for instance positioned centrally andwhere he is capable, for instance via a network, of accessing evenmore-distant machine control systems that he cannot actually see.

[0020] For the execution according to the invention, a direct physicalcommunication connection can be provided between the programming deviceand the machine control system. In that case, the programming device isinserted into a suitable interface of the machine control system and/orvice versa, and the requisite data are transmitted via the interface. Inthe method of the invention, the execution of the version of the programsource stored in memory in the machine control system is after all donewith the aid of the programming device. Thus the data transmission isapplied over a longer period of time, which as a rule is specificallythe length of time the execution process takes. The proposed directphysical communication connection is especially suitable for thispurpose, since on the one hand it is a connection that is not verylikely to malfunction, and on the other, it does not burden a possiblyexisting network into which a plurality of machine control systems canbe incorporated.

[0021] A standardized communication connection, for which theappropriate hardware is usually already in place or can easily beprocured, is communication via a direct ethernet interface between theprogramming device and the machine control system. For instance, ifthere is a building network of machine control systems, then theprogramming device can simply be connected to an ethernet interface thatfor instance is present in the network. However, an additional ethernetinterface can also be provided at one machine control system. This willbe discussed in further detail hereinafter. Transmission by means of theethernet protocol is as a rule fast and reliable, so that the method ofthe invention, with the embodiment proposed, has a low likelihood oferror.

[0022] Alternatively to this—if the communication is effective via anexisting communications network of machine control systems—theprogramming device can be incorporated into this existing communicationsnetwork with a corresponding interface and can selectively access anindividual machine control system via the communications network. Thecommunications network can for instance be an existing ethernet. Forthis purpose, however, the internet can also be considered. It is onlythe selective and arbitrary access of the programming device to anindividual machine control system via a network of machine controlsystems among other elements that is not previously known in the priorart. Such a method, which furthermore functions as in the prior art,that is, with downloading and ensuing uploading, is therefore expresslyclaimed. This has the advantage that the execution can be donecentrally. Long walks are then unnecessary, and the execution provessubstantially simpler.

[0023] In a network of machine control systems, the machine controlsystem that is to perform the execution is selected in the programmingdevice. Possible mistakes are precluded because the communication and/orthe execution are displayed in the machine control system. This can bedone for instance via a displayed programming barrier in the machinecontrol system, which is lifted by a confirmation entry. Mistakes inestablishing the connection can alternatively be precluded by providingthat the machine control system has an additional individual-connectionnetwork interface, which is to be connected to a corresponding interfacein the programming device, by means of which the communication with theprogramming device is effected.

[0024] To assure that the execution can be done solely by authorized,predetermined persons, it is proposed that the execution of the controlprogram be enabled by an access security, activated in the machinecontrol system, for only predetermined users. Such access security, andthe resultant permitted and/or denied access, should be equallyeffective for the programming device.

[0025] It is also proposed that an addressable remote readiness switchis provided in the machine control system and is locked via the accesssecurity. This creates further security against unauthorized access.Preferably, the direct operation of the machine control system duringthe communication and/or during the execution of the program source withthe programming device is deactivated. Data access conflicts are thusreliably precluded.

[0026] The method of the invention can be performed with a machinecontrol system, without the machine control system, in the case of anexisting communications network of machine control systems, having to bedisconnected from this network.

[0027] The invention will be described in further detail in terms of anexemplary embodiment shown in the drawing. The drawing schematicallyshows a machine control system and a programming device for performingthe method of the invention; the machine control system is embodied inaccordance with claim 13.

[0028] The drawing shows a machine control system 2, which isincorporated—for instance jointly with other machine control systems 2—into a communications network 10. The machine control system isincorporated into the communications network 10 (building network) viathe left-hand one of the two network adapters 13 shown. To that end,there is a communications network interface 11 in the machine controlsystem 2, and by way of it the applicable connection is made. Themachine control system has a memory means 16, which can communicate witha programming module 5 a of the machine control system 2. As a result,the data are exchanged between the programming module 5 a and the memorymeans 16 of the machine control system 2. A operation and visualizationmodule 7 is also provided, which on the one hand permits directoperation of the associated machine and on the other allows changes toan existing control program of a program source to be input. At the sametime, the change is displayed in the monitor, shown only schematically,of the operation and visualization module 7. Machine states can also bedisplayed here.

[0029] The machine control system 2 communicates temporarilyparticularly during servicing, maintenance or startup—with a programmingdevice 1. The communication can be made via the communications network10. In that case, the programming device 1 and the machine controlsystem 2 are connected to the communications network 10 via thecommunications network interfaces 11 and 12 shown. The connection inthat case is not direct but instead is effected for instance via aheader of the network protocol, which is sent by the applicable deviceand addresses the applicable machine control system 2.

[0030] The alternative variant in which the programming device 1communicates with the machine control system 2 via a direct physicalcommunication connection 8 is shown in dashed lines. Then thecommunication is established via the communications networkinterfaces—in the case illustrated, direct ethernet interfaces 9, 12. Itis also possible for both communication possibilities to be employedsimultaneously. In that case, the program source can be executed both inthe directly connected machine control system 2 and simultaneously inother machine control systems 2 of the communications network 10—forinstance synchronously.

[0031] In the programming device 1, there is a programming module 5 b,which is in interaction with the user via an input and visualizationmodule 19. A corresponding programming module 5 a is also present in themachine control system 2. The program source 3 a is stored in memory inthe machine control system 2. At the same time, it can also (3 b) bestored in memory in the programming device 1, for instance in order touse the program source for other machine control systems, or to test itor make it available at a different location.

[0032] Via the communication connection between the programming device 1and the machine control system 2, the execution of the program source iseffected directly in the machine control system 2; that is, by means ofthe programming device 1, the program source in the machine controlsystem 2 is changed or executed. The programming device 1 is aquasi-remote I/O peripheral of the machine control system 2, but aprogramming module 5 b must also be present in the programming device 1.

[0033] The programming module 5 b of the programming device 1communicates—likewise bidirectionally—with a memory means 17 of theprogramming device 1. The program source can be stored in this memorymeans as well.

[0034] The data shown are represented merely symbolically by cylindricalportions of the respective memory means 16, 17, 18 and are identifiedhere by the data concealed behind them, that is, program sources andcompilate. The method according to the invention functions as follows:

[0035] The programming device 1 is put into a communicating connectionwith the programming device 2 via the direct communication connection 8(interfaces 9, 12) or via the communications network 10 (interfaces 11,12). This can be done for instance by addressing via the communicationsnetwork 10. Once the communication connection is established, optionallyeither the program source 3 a from the machine control system 2 isuploaded into the programming device 1 (if a program source 3 a isinitially present at all), or the program source 3 b is initiallycompared with the program source 3 a in the machine control system 2.Next, via the communication connection, the execution is done in theprogramming module 5 b of the programming device 1, specifically withexecution/modification of the program source 3 a in the machine controlsystem 2. Thus via the communication interface, the programming module 5b accesses the program source 3 a in the programming module 5 a of themachine control system 2 in the execution process. As needed, therequisite read-write accesses to the program source 3 a take place in amemory means 16, 18 or in a working memory (not shown) of the machinecontrol system 2. The execution is displayed in the operation andvisualization module 7 of the machine control system 2 by means of thecommunication/execution display 15. Provision can also be made so thatbefore the onset of execution, a remote readiness switch 14 in themachine control system must be actuated, to preclude mistakes amongdifferent machine control systems.

[0036] Once the program source 3 a has been generated/executed/modifiedin the machine control system 2, a further upload of the program source3 a into the programming device 1 and/or a comparison of the programsources 3 a, 3 b can—again optionally—be done. After that, theprogramming device 1 is disconnected from the machine control system 2,or—if the communication is provided via the communications network 10—the communication connection between the programming device 1 and themachine control system 2 is broken, and/or the programming device 1 islogged off from the machine control system 2, for instance. After that,the programming device 1 can then selectively and arbitrarily accessanother machine control system 2.

[0037] The compilate of the executed program source is either generatedin the programming module 5 b, which also includes a compiler, and thendownloaded, or it is generated in the machine control system 2 from theexecuted control program source and loaded into a control module 6,where it is stored in a memory means 18, provided for the purpose, ofthe control module 6. The control module 6 can be a software module ofthe machine control system 2. However, dedicated control hardware thatforms the control module 6 can be provided instead. In each case, thecompilate must be stored in memory in the control module 6, for instancein the memory means 18 of the control module 6. However, it can also bestored in particular in the memory means 16 of the machine controlsystem 2. The memory means 16, 18 can be a physical memory (hard disk,RAM or working memory) of the machine control system 2.

List of Reference Numerals

[0038]1 Programming device

[0039]2 Machine control system

[0040]3 a Program source in the machine control system

[0041]3 b Program source in the programming device

[0042]4 Compilate

[0043]5 a Programming module in the machine control system

[0044]5 b Programming module in the programming device

[0045]6 Control module

[0046]7 Operation and visualization module

[0047]8 Direct communication connection

[0048]9 Direct ethernet interface

[0049]10 Communications network

[0050]11 Communications network interface

[0051]12 Communications network interface of the programming device

[0052]13 Network adapter

[0053]14 Remote readiness switch

[0054]15 Communication/execution display

[0055]16 Memory means of the machine control system

[0056]17 Memory means of the programming device

[0057]18 Memory means of the control module

[0058]19 Input and display module

1. A method for remote-control programming, wherein a programming device(1) communicates temporarily, in particular during maintenance or uponstartup, with a machine control system (2), and in the programmingdevice (1), an execution of the control program takes place, whoseprogram source (3 a) and whose compilate (4) are stored in memory in themachine control system (2), and there is a programming module (5 b) inthe programming device (1) by means of which the program source (3 a)stored in memory in the machine control system (2) is executed in theprogramming device (1), and after the execution, the compilate (4) ofthe executed program source (3 a) is generated and stored in memory inthe machine control system (2), where it is furnished for a controlmodule (6).
 2. The method of claim 1, characterized in that the programsource (3 a) is additionally stored in memory in the programming device(1); and that before and/or after the execution, a comparison formatching of the program sources (3 a, 3 b) of the machine control system(2) and the programming device (1) is done.
 3. The method of claim 1 or2, characterized in that during the communication and/or during theexecution of the program source (3 a), access to the program source (3a) of the machine control system (2) is prevented.
 4. The method ofclaim 3, characterized in that during the communication and/or duringthe execution of the program source (3 a), a flag of the machine controlsystem (2) is set, which deactivates the capability of access to theprogram source (3 a) of the machine control system (2).
 5. The method ofone of claims 1-4, characterized in that a direct physical communicationconnection (8) between the programming device (1) and the machinecontrol system (2) is employed.
 6. The method of claim 5, characterizedin that the communication is effected via a direct ethernet interface(9) between the programming device (1) and the machine control system(2).
 7. The method of one of claims 1-4, characterized in that thecommunication is effected via an existing communications network (10) ofmachine control systems (2), into which network the programming device(1) is incorporated, and the programming device (1) selectively accessesan individual machine control system (2) via the communications network(10).
 8. The method of one of claims 1-7, characterized in that thecommunication and/or the execution is displayed at the machine controlsystem (2), for instance via a communication/execution display (15) ofthe operation and visualization module (7).
 9. The method of claim 8,characterized in that there is a programming barrier in the machinecontrol system (2), which is lifted by means of a confirmation entry.10. The method of one of claims 1-9, characterized in that the executionof the control program is enabled by an access security, activated inthe machine control system (2), for only predetermined users.
 11. Themethod of claim 10, characterized in that an enabled access to themachine control system (2) and/or a denied access to the programmingdevice (1) is equally effective.
 12. The method of claim 10 or 11,characterized in that an addressable remote readiness switch (14) thatcan be spoken to is provided in the machine control system (2) and islocked via the access security.
 13. A machine control system, inparticular for performing the method of claim 6, characterized in thatthe machine control system is incorporated, via a communications networkinterface (11), into a communications network (10) of machine controlsystems (2) and has an additional individual-connection networkinterface (9), which is to be connected to a corresponding interface(12) of the programming device (1), as a result of which thecommunication with the programming device (1) takes place.